/*
 * @Author: 杨光辉(GerhardYang)
 * @Date: 2021-08-23 10:17:02
 * @LastEditors: 杨光辉(GerhardYang)
 * @LastEditTime: 2021-08-24 13:06:49
 * @Description: file content
 * @Copyright: 超图软件华中平台客户中心 (SuperMap Software Co., Ltd. -Central China Platform)
 */
var jsonsort = function (obj) {
  for (var i = 0; i < obj.length; i++) {
    for (var j = i + 1; j < obj.length; j++) {
      obj[i].layerIndex ? "" : (obj[i].layerIndex = 0);
      obj[j].layerIndex ? "" : (obj[j].layerIndex = 0);
      if (obj[i].layerIndex > obj[j].layerIndex) {
        var temp = obj[i];
        obj[i] = obj[j];
        obj[j] = temp;
      }
    }
    // if (obj[i].childre.length) this.jsonsort(obj[i].children);
  }
  return obj;
};

/*
 * @description    根据某个字段实现对json数组的排序
 * @param   array  要排序的json数组对象
 * @param   field  排序字段（此参数必须为字符串）
 * @param   reverse 是否倒序（默认为false）
 * @return  array  返回排序后的json数组
 */
function jsonSortByField(array, field, reverse) {
  //数组长度小于2 或 没有指定排序字段 或 不是json格式数据
  if (array.length < 2 || !field || typeof array[0] !== "object") return array;
  //数字类型排序
  if (typeof array[0][field] === "number") {
    array.sort(function (x, y) {
      return x[field] - y[field];
    });
  }
  //字符串类型排序
  if (typeof array[0][field] === "string") {
    array.sort(function (x, y) {
      return x[field].localeCompare(y[field]);
    });
  }
  //倒序
  if (reverse) {
    array.reverse();
  }
  return array;
}
function esHitsjsonSortByField(array, field, reverse) {
  //数组长度小于2 或 没有指定排序字段 或 不是json格式数据
  if (array.length < 2 || !field || typeof array[0] !== "object") return array;
  //数字类型排序
  if (typeof array[0]._source[field] === "number") {
    array.sort(function (x, y) {
      return x._source[field] - y._source[field];
    });
  }
  //字符串类型排序
  if (typeof array[0]._source[field] === "string") {
    array.sort(function (x, y) {
      return x._source[field].localeCompare(y._source[field]);
    });
  }
  //倒序
  if (reverse) {
    array.reverse();
  }
  return array;
}
export { jsonsort, jsonSortByField, esHitsjsonSortByField };
